package de.dhbw.karlsruhe.picsim.model.commands;

import de.dhbw.karlsruhe.picsim.model.actions.PicAction;
import de.dhbw.karlsruhe.picsim.model.cpu.PicInstructionFacade;
import org.jetbrains.annotations.NotNull;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 * User: goesen
 * Date: Apr 12, 2010
 * Time: 3:49:52 PM
 */

/**
 * Das Basisinterface für jede Instruction die der Pic ausführen kann
 */

public interface PicInstruction {

    /**
     * @param pic der aktuelle Zustand des Prozessors und der Register
     * @return die Veränderungen die am Pic durchgeführt werden müssen
     */
    @NotNull
    List<? extends PicAction> getActions(@NotNull PicInstructionFacade pic);

}
